library(dplyr)
library(ggiraph)
library(ggplot2)
library(httr)
library(jsonlite)
library(patchwork)
library(pxR)
library(plotly)
library(PubMedWordcloud)
library(purrr)
library(RColorBrewer)
library(readr)
library(readxl)
library(rjson)
library(rlang)
library(sf)
library(tidyr)
library(tidyverse)
library(viridis)En los últimos años, la resistencia a los antimicrobianos (AMR) ha emergido como una de las principales amenazas para la salud pública a nivel global. Este fenómeno no solo pone en riesgo la efectividad de los tratamientos médicos, sino que también representa un desafío significativo para los sistemas de salud, la economía y la seguridad alimentaria. En este contexto, la AMR no se limita al ámbito médico, sino que involucra factores interrelacionados como el consumo excesivo de antibióticos, la automedicación y el uso intensivo de antimicrobianos en la ganadería, especialmente en animales destinados a la producción de carne.
En Europa, y particularmente en la Unión Europea (UE), las tasas de resistencia a los antibióticos varían considerablemente entre países y regiones, lo que plantea preguntas fundamentales: ¿cómo influyen las tendencias de salud pública en esta variabilidad? y ¿qué papel desempeña el desarrollo económico en la lucha contra la resistencia antimicrobiana?.
Este trabajo se centra en explorar el impacto de factores clave en la incidencia de AMR, con especial atención en tres áreas principales:
Consumo de antibióticos en España: Identificar patrones de uso en las comunidades autónomas, diferenciando entre antibióticos recetados y no recetados, con el objetivo de abordar el problema de la automedicación.
Relación entre el PIB y la resistencia a los antibióticos en la UE: Analizar si el nivel económico de un país, medido a través de su Producto Interno Bruto, está correlacionado con la incidencia de resistencia antimicrobiana, aportando una perspectiva socioeconómica al problema.
Consumo y resistencia en sectores específicos: Examinar cómo el uso de antibióticos en humanos, hospitales y ganadería afecta los niveles de resistencia en los países de la UE, destacando la importancia de políticas sectoriales efectivas.
# Vector con las rutas a los archivos de texto
rutas <- c(
"INPUT/ARTICULOS/abstract-33348801.txt",
"INPUT/ARTICULOS/abstract-36963007.txt",
"INPUT/ARTICULOS/abstract-37353202.txt",
"INPUT/ARTICULOS/abstract-38217891.txt"
)
# Leer los contenidos de los archivos
abstracts <- map_chr(rutas, read_file)
# Limpiar los textos
cleanAbs <- cleanAbstracts(abstracts)
# Generar la nube de palabras
plotWordCloud(cleanAbs, min.freq = 2, scale = c(2, 0.3))Cargar environment
Determinar el consumo de antibióticos por comunidades autónomas, diferenciando entre recetado y no recetado, para identificar tendencias de uso.
tipo_ccaa_consumo_o_no <- read_delim("INPUT/DATA/datos_ccaa/tipo_ccaa_consumo_o_no.csv",
delim = ";", escape_double = FALSE, trim_ws = TRUE)
antibioticos <- tipo_ccaa_consumo_o_no %>%
dplyr::filter(`Tipo de medicamento` == "Antibióticos",`Sexo` == "Ambos sexos")%>%
dplyr::filter(`Sí o no` == "Sí")
# Esta tabla enseña que el 3,54% de la población española en la última encuesta reconoce
# haber consumido antibióticos en las últimas 2 semanas (En el año 2021)
antibioticos$Total <- gsub(",", ".", antibioticos$Total)
# Limpia espacios y caracteres no numéricos (si es necesario)
antibioticos$Total <- gsub(" ", "", antibioticos$Total)
# Convierte a numérico
antibioticos$Total <- as.numeric(antibioticos$Total)
# Revisa si hay NA después de la conversión
#sum(is.na(antibioticos$Total)) # Muestra el número de NAs
consumo <- antibioticos %>%
group_by(`Comunidades y Ciudades Autónomas`) %>%
arrange(desc(Total))
c_c_final <- consumo %>%
mutate(`Comunidades y Ciudades Autónomas` = ifelse(is.na(`Comunidades y Ciudades Autónomas`), "Total País", `Comunidades y Ciudades Autónomas`))%>%
dplyr::rename(comunidades_autonomas = `Comunidades y Ciudades Autónomas`)%>%
select(comunidades_autonomas, Total)%>%
dplyr::rename(total_consumo_ccaa = Total)Con estos datos podemos observar de manera gráfica la tendencia de consumo de antibióticos por comunidad autónoma en este país.
# Crear el gráfico de barras
ggplot(c_c_final, aes(x = reorder(comunidades_autonomas, -total_consumo_ccaa), y = total_consumo_ccaa)) +
geom_bar(stat = "identity", fill = "steelblue") +
labs(x = "Comunidades Autónomas", y = "Total Consumo", title = "Consumo de antibióticos por Comunidad Autónoma") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 70, hjust = 1)) Se observa una gran variabilidad en el consumo de antibióticos entre las diferentes comunidades autónomas. Algunas comunidades, como “La Rioja” y “Castilla y León”, tienen un consumo significativamente mayor en comparación con otras. Esto puede deberse a que estas comunidades tienen una población mayor en comparación con otras regiones, lo que puede llevar a un mayor consumo por necesidades médicas.
A continuación estudiaremos si esa cantidad de antibiótico se ha consumido de forma regulada, o por el contrario, no está recetado, favoreciendo así el autoconsumo de los mismos, lo cual se está considerando como una de las posibles causas de la resistencia a los antibióticos
# Leer el archivo .px
archivo_px <- read.px("INPUT/DATA/datos_ccaa/tipo_ccaa_recetado_o_no.px")
df_px <- as.data.frame(archivo_px)
# quedarme solo con los antibióticos
antibiotic <- df_px[df_px[["Tipo.de.medicamento"]] == "Antibióticos" & df_px$`Sexo` == "Ambos sexos", ]
# qué comunidad autónoma se automedica más
consumo_comunidades <- antibiotic%>%
dplyr::filter(`Recetado` == "No recetado") %>%
dplyr::filter(value != 0)%>%
group_by(`Comunidad.autónoma`) %>%
arrange(desc(value)) %>%
select(Comunidad.autónoma, value)%>%
dplyr::rename(comunidades_autonomas = Comunidad.autónoma)%>%
dplyr::rename("Automedicación (%)" = value)%>%
dplyr::mutate(comunidades_autonomas = case_when(
comunidades_autonomas == "Total" ~ "Total País",
TRUE ~ comunidades_autonomas
))unir_consumo_autoconsumo <- inner_join(c_c_final, consumo_comunidades, by = "comunidades_autonomas")%>%
mutate("Automedicación (%)" = total_consumo_ccaa * `Automedicación (%)`/100)%>%
dplyr::rename("Consumo total" = total_consumo_ccaa)%>%
pivot_longer(.,names_to = "Variable", values_to = "Valores", cols = c("Consumo total":"Automedicación (%)")) %>%
mutate(Variable = factor(Variable, levels = c("Consumo total","Automedicación (%)")))
ggplot(unir_consumo_autoconsumo, aes(fill = Variable, y = Valores, x = reorder(comunidades_autonomas, -Valores))) +
geom_bar(position = "stack", stat = "identity") +
scale_fill_manual(values = c("Consumo total" = "lightgreen",
"Automedicación (%)" = "tomato")) +
labs(x = "Comunidades Autónomas", y = "Porcentaje de Consumo", title = "Automedicación según el consumo de antibióticos por CCAA ")+
theme_minimal()+
theme(axis.text.x = element_text(angle = 70, hjust = 1))Podría parecer que la tendencia de consumo total se refleja en la automedicación, aun así, se ha demostrado que no siempre se da este caso. Aunque otras comunidades tienen un mayor consumo total (como La Rioja o Castilla y León), el País Vasco es la que presenta el porcentaje más alto de automedicación dentro de su población. Esto sugiere que en esta comunidad hay un acceso más frecuente o desregulado a antibióticos no recetados, o bien un mayor hábito de consumirlos sin prescripción médica.
Función para cambiar nombre de paises A continuación se presenta una función realizada para facilitar nuestro trabajo, ya que tenemos muchos datos de países y las fuentes no siempre están organizadas de forma que sea compatible la combinación de unos conjuntos de datos con otros. Muchas columnas ofrecen la misma información (los nombres de los países) pero expresada en formatos diferentes, algunas dan el nombre del país y otras el código internacional que las identifica.
library(dplyr)
library(rlang)
cambio_nombre_codigo <- function(Tabla, columna) {
# Convertir el nombre de la columna en un símbolo
columna_sym <- ensym(columna)
Tabla %>%
mutate(
!!columna_sym := case_when(
!!columna_sym == "Slovakia" ~ "SK",
!!columna_sym == "Belgium" ~ "BE",
!!columna_sym == "Cyprus" ~ "CY",
!!columna_sym == "Greece" ~ "EL",
!!columna_sym == "Romania" ~ "RO",
!!columna_sym == "Bulgaria" ~ "BG",
!!columna_sym == "France" ~ "FR",
!!columna_sym == "Malta" ~ "MT",
!!columna_sym == "Poland" ~ "PL",
!!columna_sym == "Spain" ~ "ES",
!!columna_sym == "Ireland" ~ "IE",
!!columna_sym == "Italy" ~ "IT",
!!columna_sym == "Luxembourg" ~ "LU",
!!columna_sym == "Portugal" ~ "PT",
!!columna_sym == "Czech Republic" ~ "CZ",
!!columna_sym == "Czechia" ~ "CZ",
!!columna_sym == "Finland" ~ "FI",
!!columna_sym == "Austria" ~ "AT",
!!columna_sym == "Germany" ~ "DE",
!!columna_sym == "Denmark" ~ "DK",
!!columna_sym == "Estonia" ~ "EE",
!!columna_sym == "Hungary" ~ "HU",
!!columna_sym == "Croatia" ~ "HR",
!!columna_sym == "Lithuania" ~ "LT",
!!columna_sym == "Latvia" ~ "LV",
!!columna_sym == "Netherlands" ~ "NL",
!!columna_sym == "Sweden" ~ "SE",
!!columna_sym == "Slovenia" ~ "SI",
TRUE ~ as.character(!!columna_sym) # Mantener valores originales si no coinciden
)
)
}
cambio_codigo_nombre <- function(Tabla, columna) {
# Convertir el nombre de la columna en un símbolo
columna_sym <- ensym(columna)
Tabla %>%
mutate(
!!columna_sym := case_when(
!!columna_sym == "SK" ~ "Slovakia",
!!columna_sym == "BE" ~ "Belgium",
!!columna_sym == "CY" ~ "Cyprus",
!!columna_sym == "EL" ~ "Greece",
!!columna_sym == "RO" ~ "Romania",
!!columna_sym == "BG" ~ "Bulgaria",
!!columna_sym == "FR" ~ "France",
!!columna_sym == "MT" ~ "Malta",
!!columna_sym == "PL" ~ "Poland",
!!columna_sym == "ES" ~ "Spain",
!!columna_sym == "IE" ~ "Ireland",
!!columna_sym == "IT" ~ "Italy",
!!columna_sym == "LU" ~ "Luxembourg",
!!columna_sym == "PT" ~ "Portugal",
!!columna_sym == "CZ" ~ "Czech Republic",
!!columna_sym == "FI" ~ "Finland",
!!columna_sym == "AT" ~ "Austria",
!!columna_sym == "DE" ~ "Germany",
!!columna_sym == "DK" ~ "Denmark",
!!columna_sym == "EE" ~ "Estonia",
!!columna_sym == "HU" ~ "Hungary",
!!columna_sym == "HR" ~ "Croatia",
!!columna_sym == "LT" ~ "Lithuania",
!!columna_sym == "LV" ~ "Latvia",
!!columna_sym == "NL" ~ "Netherlands",
!!columna_sym == "SE" ~ "Sweden",
!!columna_sym == "SI" ~ "Slovenia",
TRUE ~ as.character(!!columna_sym) # Mantener valores originales si no coinciden
)
)
}Función para abrir los archivos de las bacterias resistentes en la ganadería
Para abrir los datos relativos a la AMR en la ganadería, se presenta una función que permite abrir una carpeta con numerosos archivos de extensión .json con la misma estructura y leerlos.
obtener_nombre<-function(carpeta){
archivos <- as.list(list.files(path =carpeta))
lista_nombres<-list()
for(i in 1:length(archivos)){
posicion1<-regexpr("_", archivos[[i]])
posicion2<-regexpr("\\.", archivos[[i]])
subcadena<-substr(archivos[[i]], posicion1+1, posicion2-1)
lista_nombres[[i]]<-subcadena
}
return(lista_nombres)
}
obtener_archivo<-function(direccion){
lista_paises<-obtener_nombre(direccion)
lista_enlace<-list()
direccion_archivos<-list()
for(i in lista_paises){
cada_pais<-paste0("AMR_",i,".json")
lista_enlace[i]<-cada_pais
}
for(i in lista_enlace){
cada_archivo<-paste0(direccion,"/",i)
direccion_archivos[i]<-cada_archivo
}
for(i in direccion_archivos){
pais<-fromJSON(file= i)
enlace<-pais$links$archive
respuesta_archivo <- GET(enlace)# Hacer la solicitud HTTP para descargar el archivo
nombre_archivo<-basename(enlace)#Extrae el nombre del archivo de la URL
if (status_code(respuesta_archivo) == 200) {# Verificar si la solicitud fue exitosa (código 200, código estándar HTTP que significa "OK")
# Guardar el archivo ZIP localmente en formato binario
writeBin(content(respuesta_archivo, "raw"), nombre_archivo)
print("Archivo ZIP descargado correctamente.")
unzip(nombre_archivo, exdir = "carpeta_destino", overwrite = TRUE)
} else {
print(paste("Error al descargar el archivo. Código de respuesta:", status_code(respuesta_archivo)))
}
}
}
obtener_archivo("INPUT/DATA/Resistecia_Antibioticos_UE")
leer_archivo <- function(carpeta) {
carpeta_destino <- carpeta
archivos_zip <- list.files(carpeta_destino, pattern = "\\.zip$", full.names = TRUE)
# Iterar sobre los archivos .zip y descomprimirlos
for (archivo in archivos_zip) {
# Descomprimir el archivo .zip
archivos_extraidos <- unzip(archivo, exdir = carpeta_destino, overwrite = TRUE)
print(paste("Descomprimido:", archivo)) # Imprimir cada archivo que se descomprime
# Filtrar el archivo .xlsx entre los extraídos
archivo_xlsx <- archivos_extraidos[grepl("\\.xlsx$", archivos_extraidos)]#Aquí, grepl() busca archivos cuyos nombres terminen con .xlsx
# Verificar si hay algún archivo .xlsx descomprimido
if (length(archivo_xlsx) > 0) {
# Leer el archivo Excel como dataframe
datos_xlsx <- read_excel(archivo_xlsx[1]) # Leer el primer archivo .xlsx encontrado
# Asignar el dataframe al Global Environment usando el nombre del archivo como variable
nombre_variable <- make.names(basename(archivo_xlsx[1])) # Crear un nombre de variable válido
assign(nombre_variable, datos_xlsx, envir = .GlobalEnv) # Asignar el dataframe al Global Environment
}
}
}
leer_archivo("carpeta_destino")Juntar los dataframes que tenemos en el enviroment 1. Listar los nombres de todos los dataframes que terminan en “.xlsx” (ajusta si es necesario) 2. Convertir los nombres a una lista de dataframes usando mget() 3. Unir todos los dataframes en uno solo usando bind_rows
nombres_dataframes <- ls(pattern = "_AMR_PUB\\.xlsx$")
lista_dataframes <- mget(nombres_dataframes)
df_combinado <- bind_rows(lista_dataframes, .id = "origen")Carga del global enviroment El entorno en el que guardan todos los dataframes de cada pais resultantes de la función leer_archivo, y el dataframe df_combinado del codigo anterior se ha cargado anteriormente ya que incluye otros datos que ya se han empleado.
Modificación y obtencion del dataframe con los datos seleccionamos las columnas que vamos a necesitar y filtramos en la columna de las bacterias solo las patogénicas.
Cambiamos los nombres de las columnas y lo asignamos al dataframe
paises_UE_df<-df_combinado%>%
select(rep_Country_name,rep_Country_code,zoonosis_name,matrix_name,totUnitsTested,totUnitsPositive,sampUnitType_name,sampType_name,MIC_name,CUTOFFVALUE)%>%
mutate(zoonosis_name = sub(".*", "", zoonosis_name))%>% # Extraer solo la primera palabra
filter(zoonosis_name != "Escherichia coli, non-pathogenic, unspecified")
nuevos_nombres <- c("NombrePais", "Codigo", "zoonosis_name","OrigenMuestra", "TotalMuestras","MuestraPositiva","Tipo_Unidad_Muestra","TipoMuestra","MIC_name","ValorCorte") # Modifica según el número de columnas
colnames(paises_UE_df) <- nuevos_nombresExplorar cómo el consumo de antibióticos en sectores como el personal (comunitario), hospitalario y ganadero se relaciona con los niveles de resistencia a antibióticos en diferentes países de la UE.
Uno de los factores a estudiar era el consumo/administración de este tipo de los medicamentos por parte de los hospitales y la ciudadanía de manera individual, y eso se ve reflejado en los siguientes datos extraídos de la encuesta europea anual.
lista_pais <- list("BE", "BG", "CZ", "DK", "DE", "EE", "IE", "EL", "ES", "FR", "HR", "IT", "CY", "LV", "LT", "LU", "HU", "MT", "NL",
"AT", "PL", "PT", "RO", "SI", "SK", "FI", "SE")
DDD_Europa_Json<- jsonlite::fromJSON("INPUT/DATA/DDD_1000_habitantes_paises.JSON")
DDD_Europa_df <- cambio_nombre_codigo(DDD_Europa_Json, "Country")
# Usar la función 'cambio_nombre_codigo' para convertir nombres de países en códigos
DDD_Europa_df <- DDD_Europa_df%>%
mutate(DDD_per_1000_inhabitants_per_day = as.numeric(`DDD per 1000 inhabitants per day`))%>%
mutate(DDD_per_100_inhabitants_per_day = DDD_per_1000_inhabitants_per_day / 10) %>%
dplyr::filter(Country %in% unlist(lista_pais)) %>%
select(-DDD_per_1000_inhabitants_per_day, -`DDD per 1000 inhabitants per day`)
# Añadir columna para calcular DDD por cada 100 habitantes y eliminar la columna originalAl tratarse del número de dosis estándar consumidas diariamente por cada 1000 personas, se divide entre 10 para que se convierta en el número de dosis diarias por cada 100 habitantes.
Si se considera que cada dosis se consume por una persona diferente, el resultado de la segunda columna significa que el x% de la población de cada país consume antibiótico de forma diaria en el sector hospitalario y comunitario.
Gráfico de barras de la Dosis de antibióticos media Diaria Definida de los países ordenados de mayor a menor consumo
grafico_DDD <- ggplot(DDD_Europa_df, aes(x = reorder(Country, -DDD_per_100_inhabitants_per_day),
y = DDD_per_100_inhabitants_per_day)) +
geom_bar(stat = "identity", fill = "turquoise") +
labs(title = "DDD por 100 habitantes por día en Europa",
x = "País",
y = "DDD por 100 habitantes por día") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
grafico_DDDSe puede analizar de forma individual, para determinar qué país consume más antibióticos de forma registrada por el sistema de salud, o por el contrario, se puede comparar con otros factores que se están estudiando como posibles causantes de la resistencia a los antibióticos para encontrar relaciones con el porcentaje de la población de los diferentes países de la UE que han dado positivo en resistencia a los antimicrobianos.
Modelar datos de consumo en ganadería, sector hospitalario y comunitario
A continuación se pretende estudiar el consumo de antibióticos por parte de los animales de granja suministrados por los profesionales del sector, que en ocasiones resultan en sobremedicación. Este problema se suele dar como resultado de un tratamiento (no necesario) cuyo objetivo es tener animales sanos y sin ninguna enfermedad para poder venderlos y que el producto cárnico no se desperdicie sin perder dinero.
La apertura y muestra de los datos sobre la tendencia de consumo de antibióticos en la ganadería se realiza de la siguiente manera:
ant_europa_g <- read_excel("INPUT/DATA/consumo_ganaderia_2022.xlsx", skip = 3)
# Procesamiento inicial de los datos
a_e_g <- ant_europa_g %>%
select("Country", "...5") %>% # Seleccionar las columnas relevantes
dplyr::rename(Antibiotic_use_in_livestock_1000_PCU = `...5`) %>% # Renombrar columnas
mutate(Year = "2022") %>% # Añadir la columna de año
cambio_nombre_codigo("Country") %>% # Usar la función para cambiar nombres de países a códigos
drop_na() %>% # Eliminar filas con valores NA
relocate(3, .before = 2) # Reubicar la columna 'Year' antes de 'Country'
# Crear un nuevo data frame con datos modificados
new <- a_e_g %>%
select(-Year) %>% # Eliminar la columna 'Year'
mutate(Antibiotic_use_in_livestock_100_PCU = as.numeric(Antibiotic_use_in_livestock_1000_PCU) / 10) %>% # Calcular el nuevo indicador
select(-Antibiotic_use_in_livestock_1000_PCU) # Eliminar la columna originalLa incidencia de la AMR se registra mediante una encuesta europea en la cual se escoge un grupo de individuos al azar de cada país y se analiza la presencia de bacterias resistentes a determinados antibióticos. Para simplificar la representación y obtener conclusiones más claras, se hace la media entre los registros positivos de todos los antibióticos referentes a la misma bacteria para obtener la incidencia media de la misma. Además, también se calcula media entre todas las bacterias para obtener un valor orientativo acerca del porcentaje de los encuestados de cada país que presenta resistencia ante los antibióticos.
# Cargar el archivo CSV de incidencia de enfermedades
Incidencia_enfermedades <- read_csv("INPUT/DATA/ECDC_encuesta_AMR_incidencia_enfermedades.csv")
# Filtrar los datos para el año 2022 y las categorías Male y Female
incidencia_2022MF <- Incidencia_enfermedades %>%
dplyr::filter(Time == 2022) %>%
dplyr::filter(Category == 'Male' | Category == 'Female')
# Convertir 'Value' a numérico
incidencia_2022MF$Value <- as.numeric(incidencia_2022MF$Value)
# Crear el dataframe media_poblacion con una nueva columna 'grupo'
media_poblacion <- incidencia_2022MF %>%
dplyr::select(-Unit, -HealthTopic, -Time, -Distribution) %>%
mutate(grupo = substr(Population, 1, 3))
lista_codigos_paises <- list("AT", "BE", "BG", "CY", "CZ", "DE", "DK", "EE", "EL", "ES", "FI", "FR", "HR", "HU",
"IE", "IT", "LT", "LU", "LV", "MT", "NL", "PL", "PT", "RO", "SE", "SI", "SK")
# Calcular la media de 'Value' por 'RegionCode' y 'grupo'
otra <- media_poblacion %>%
select(-Category, -CategoryIndex, -Population) %>%
arrange(RegionCode, grupo) %>% # Ordena los datos
group_by(RegionCode, grupo) %>% # Agrupa por RegionCode y grupo
dplyr::summarise(mean_value = mean(Value, na.rm = TRUE))%>%
dplyr::filter(RegionCode %in% lista_codigos_paises) %>% # Calcula la media en cada grupo y desagrupa
tidyr::drop_na() %>%
mutate(grupo = recode(grupo, "Ent" = "Enterococcus", "Esc" = "Escherichia","Aci"="Acinetobacter",
"Kle"="Klebsiella","Pse" = "Pseudomonas","Sta"="Staphylococcus", "Str"="Streptococcus"))
media_region <- otra %>%
group_by(RegionCode) %>%
summarise(mean_value_region = mean(mean_value, na.rm = TRUE))%>%
arrange(desc(mean_value_region))
bacterias_personas<-otra %>%
dplyr::filter(grupo %in% c("Enterococcus", "Escherichia")) Gráfico sobre la relación entre el consumo de AB y la AMR
paises_consumo_ab_sectores<-left_join(x = DDD_Europa_df, y = new, by = "Country")%>%
mutate(DDD_per_100_inhabitants_per_year = DDD_per_100_inhabitants_per_day*365/100*100)%>%
mutate(Antibiotic_use_in_livestock_1000_PCU = Antibiotic_use_in_livestock_100_PCU*10)%>%
dplyr::select(-DDD_per_100_inhabitants_per_day)%>%
left_join(x = ., y = media_region, by = c("Country" = "RegionCode"))%>%
group_by(Country, mean_value_region)%>%
dplyr::rename("100 habitantes (mg)" = DDD_per_100_inhabitants_per_year, "1000 PCU (mg)" = Antibiotic_use_in_livestock_100_PCU, "Valor" = mean_value_region)%>%
pivot_longer(., names_to = "Consumo", values_to = "Dosis", cols= c(2:3))
ggplot(paises_consumo_ab_sectores,aes(x=Dosis, y=Valor))+
geom_point(aes(color=factor(Consumo)))+
geom_smooth(method = 'lm',aes(colour=factor(Consumo)))+
labs(title = 'Relación entre el consumo de antibióticos y resistencia antimicrobiana',
y='Incidencia',
x= 'Consumo',
colour='Consumo en dosis')Este gráfico muestra la relación entre el consumo de antibióticos y la incidencia de resistencia antimicrobiana, desglosando el consumo en dos categorías: 1. Consumo en humanos (dosis diarias definidas por cada 100 habitantes, en rojo): Existe una correlación positiva entre el consumo de antibióticos en humanos y la incidencia de resistencia antimicrobiana, lo cual sugiere que a mayor consumo, mayor incidencia, lo cual respalda el impacto del uso humano en la resistencia. 2. Consumo en ganado (mg por 100 PCU, en azul): Se observa una tendencia ligeramente negativa, aunque con un intervalo de confianza amplio, indicando que la relación entre el consumo en ganado y la resistencia no es tan clara o podría estar influida por otros factores. Es posible que las prácticas específicas en la ganadería o diferencias entre países estén modulando esta relación.
Las áreas sombreadas representan los intervalos de confianza, destacando la incertidumbre en las estimaciones. La amplia sombra perteneciente a la línea de representación animal sugiere una variabilidad significativa en la relación entre el consumo en ganado y la resistencia. Factores externos (como políticas de regulación, patrones de uso antibiótico, la transmisión cruzada de bacterias resistentes, importación/exportación de carne) también podrían influir en estos resultados.
Gráfico acerca de la relación entre la resistencia antimicrobiana de animales de ganadería y personas
positivos_animales <- bacterias_personas%>%
group_by(RegionCode)%>%
dplyr::summarise(media = mean(mean_value, na.rm = TRUE))
positivos_resist_sectores<-left_join(x = media_region, y = positivos_animales, by = "RegionCode")%>%
dplyr::rename(Animales = media)%>%
dplyr::rename(Personas = mean_value_region) %>%
arrange(desc(Personas))%>%
group_by(RegionCode) %>%
pivot_longer(.,names_to = "Variable", values_to = "Valores", cols = c(Personas:Animales)) %>%
mutate(Variable = factor(Variable, levels = c("Personas","Animales"))) %>%
filter(Valores!=0.00)
#GRAFICA DE BARRAS DE LA MEDIA DE POSITIVOS EN AMR EN ANIMALES Y PERSONAS
ggplot(data = positivos_resist_sectores, aes(y = Valores, x = RegionCode)) +
geom_bar(aes(fill = Variable), position = "dodge", stat = "identity")+
labs(title='Media por paises de positivos en animales y en personas',
x='Paises',
fill='% medio positivos')+
scale_fill_manual(values = c("Personas" = 'violet',
"Animales" = "blue")) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))Parece existir una correlación heterogénea entre los resultados positivos en animales y humanos por país. Aun así, a grandes rasgos, se muestra que aquellos países con índices más bajos en resistencia en humanos, también los tiene bajos en incidencia animal. Por motivos mencionados previamente hablando del consumo de antimicrobianos, la variabilidad de la relación entre la resistencia en humanos y animales no es directa en todos los casos.
# Calcular la media basada en la proporción de positivos
media_ganaderia <- paises_UE_df %>%
group_by(Codigo, zoonosis_name) %>%
dplyr::summarise(
media = mean((MuestraPositiva / TotalMuestras)*100, na.rm = TRUE)) %>%
ungroup() %>%
tidyr::drop_na()
#table(factor(otra$grupo))
#table(factor(media_ganaderia$zoonosis_name))
#Observamos que las unicas bacterias comunes son Enterococcus y Escherichia
#Filtro solo las bacterias comunes y les cambio el nombre de las bacterias comunes
bacterias_personas<-otra %>%
dplyr::filter(grupo %in% c("Enterococcus", "Escherichia"))
#Filtro las bacterias comunes
media_ganaderia_nueva<-media_ganaderia %>%
filter(zoonosis_name %in% c("Enterococcus,", "Escherichia")) %>%
mutate(zoonosis_name = recode(zoonosis_name, "Enterococcus," = "Enterococcus"))Boxplot de la distribución de las bacteras resistentes en ganadería y ciudadanos
#BOXPLOT DE BACTERIAS QUE AFECTAN A ANIMALES Y BACTERIAS
boxplot_bac_ganaderia<-ggplot(media_ganaderia,aes(x=zoonosis_name, y=media, fill=zoonosis_name)) +
geom_boxplot() +
labs(title = "Incidencia de bacterias en ganadería ",
x = "Bacterias", y = "Incidencia media") +
theme(legend.position="none",
axis.text.x = element_text(angle = 45, hjust = 1))
boxplot_baterias_personas <- ggplot(otra, aes(x = grupo, y = mean_value, fill=grupo)) +
geom_boxplot() +
labs(title = "Incidencia de bacterias en personas ",
x = "Bacterias", y = "Incidencia media") +
theme(legend.position="none",
axis.text.x = element_text(angle = 45, hjust = 1))
boxplot_bac_ganaderia + boxplot_baterias_personasLos boxplots presentados permiten analizar la distribución y variabilidad de la incidencia de bacterias resistentes tanto en ganadería como en personas. Análisis del boxplot de ganadería: Campylobacter y Enterococcus tienen las incidencias medias más altas. Esto puede deberse a que estas bacterias son comunes en los sistemas de producción ganadera intensiva. Hay algunos puntos fuera de los rangos normales (outliers), indicando que en ciertas regiones la incidencia de estas bacterias es anormalmente alta. Esto puede deberse al momento en el que se encuentra la UE, ya que en el periodo de la toma de datos, los países estaban atravesando el momento de implantación de nuevas políticas y planes nacionales.
Análisis del boxplot de personas: Acinetobacter y Enterococcus tienen la mayor incidencia en humanos. Estas bacterias están asociadas a infecciones nosocomiales/hospitalarias. De hecho, de manera aislada, la acinetobacter se relaciona con la resistencia a los antibióticos hospitalarios más comunes, como las Fluoroquinolonas (para la: sepsis, infecciones urinarias, diarreas), antibióticos carbapenémicos (para la: neumonía, gangrena) y Aminoglucósidos (ejemplos de ab: kanamicina, neomicina)
Reflejo de la presencia de las bacterias resistentes comunes en animales y en humanos
tabla_unida <- full_join(x=media_ganaderia_nueva, y= bacterias_personas,
by = c("Codigo" = "RegionCode", "zoonosis_name" = "grupo")) %>%
dplyr::rename(Ganaderia=media, Poblacion=mean_value) %>%
pivot_longer(.,names_to = "Variable", values_to = "Valores", cols = c(Ganaderia:Poblacion)) %>%
mutate(Bacteria = factor(zoonosis_name, levels = c("Escherichia","Enterococcus"))) %>%
mutate(Variable = factor(Variable, levels = c("Ganaderia","Poblacion"))) %>%
tidyr::drop_na()
ggplot(data = tabla_unida, aes(x = Valores, y = Codigo)) +
geom_bar(aes(fill = Bacteria), position = "dodge", stat = "identity") +
facet_wrap(facets = vars(Variable), nrow = 1)+
labs(x = "Porcentaje de incidencia")Este gráfico compara los porcentajes de incidencia de Escherichia y Enterococcus en animales de ganadería y humanos por región (país). La relación entre las incidencias sugiere que en algunas regiones puede haber una transferencia significativa de bacterias resistentes entre animales y humanos (posiblemente a través de alimentos contaminados o contacto directo).
Enterococcus y Escherichia emergen como indicadores clave de resistencia compartida y merecen atención particular en investigaciones futuras. Aunque hay bacterias comunes entre ambos sectores, su distribución e incidencia no siempre están alineadas. Esto sugiere que otros factores, como el uso de antibióticos en humanos, el saneamiento, y las políticas de salud pública, también desempeñan un papel importante.
Analizar si existe una relación significativa entre el Producto Interno Bruto de los países de la Unión Europea y los niveles de resistencia a antibióticos.
pib <- read_table("INPUT/DATA/datos_pib.tsv")
# Cambio de nombre columna
colnames(pib)[1] <- "pais"
# Nos quedamos con las últimas letras
pib$pais <- substr(pib$pais, nchar(pib$pais) - 1, nchar(pib$pais))
lista_pais <- list("BE", "BG", "CZ", "DK", "DE", "EE", "IE", "EL", "ES", "FR", "HR", "IT", "CY", "LV", "LT", "LU", "HU", "MT", "NL",
"AT", "PL", "PT", "RO", "SI", "SK", "FI", "SE")
# nos quedamos solo con los países de la UE
# Filtrar los datos, quitar columnas nulas y seleccionar las columnas necesarias en una tubería
pib_2022_desc <- pib %>%
dplyr::filter(pais %in% unlist(lista_pais)) %>% # Filtrar por los países en 'lista_pais'
dplyr::select(where(~ all(!is.na(.)))) %>% # Eliminar columnas con todos los valores nulos
dplyr::select(pais, `2022`) %>% # Seleccionar las columnas 'pais' y '2022'
arrange(desc(`2022`)) # Ordenar por el PIB del 2022 en orden descendenteTras el tratamiento de estos datos se puede ver de manera gráfica la comparativa entre los países.
grafico_pib <- ggplot(pib_2022_desc, aes(x = reorder(pais, -`2022`), y = `2022`)) +
geom_bar(stat = "identity", fill = "gold") +
labs(x = "País", y = "Valor en 2022", title = "PIB por País en 2022") +
theme_minimal() +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) # Rotar etiquetas para mejor legibilidad
grafico_pibUna vez observada la primera variable, generamos los datos del valor medio de la resistencia a antimicrobianos en los países europeos para comprobar si existe una relación o, efectivamente no tiene que ver.
Este código cargado en el entorno, es capaz de generar gráficos que permitan ver la incidencia de las bacterias en cada país.
# graficos positivos generales
# Crear el gráfico usando los datos ordenados
grafico <- ggplot(media_region, aes(x = reorder(RegionCode, -mean_value_region), y = mean_value_region)) +
geom_bar(stat = "identity", fill = "skyblue", color = "blue") +
labs(
title = "Media de Incidencia por Región (Orden Descendente)",
x = "País",
y = "Media de Incidencia"
) +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 45, hjust = 1)
)
graficoVisualizar los positivos en AMR por país Se crea un gráfico de barras el cual muestra el porcentaje de personas que presentan resistencia antrimicrobiana en cada país. En orden ascendente. Junto al gráfico tenemos el mapa con los países de la UE. Al pasar el cursor por alguna de las barras o por algun país en el mapa, se indica el porcentaje de positivos y el nombre del país en partícular en ambas gráficas.
paises_UE_mapa <- c(
"Cyprus", "France", "Lithuania", "Czechia", "Germany",
"Estonia", "Latvia", "Sweden", "Finland", "Luxembourg",
"Belgium", "Spain", "Denmark", "Romania", "Hungary",
"Slovakia", "Poland", "Ireland", "Greece", "Austria",
"Italy", "Netherlands", "Croatia", "Slovenia", "Bulgaria",
"Portugal", "Malta"
)
mapa_mundo <- st_read("INPUT/DATA/mapaMundi") # Cargar el mapa de países en formato `sf`## Reading layer `ne_10m_admin_0_countries' from data source
## `C:\Users\usuario\seminario_fuentes\INPUT\DATA\mapaMundi' using driver `ESRI Shapefile'
## Simple feature collection with 258 features and 168 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -180 ymin: -90 xmax: 180 ymax: 83.6341
## Geodetic CRS: WGS 84
#Filtramos solo los paises de UE
mapa_mundo <- mapa_mundo %>%
filter(NAME %in% paises_UE_mapa)
mapa_mundo <- cambio_nombre_codigo(mapa_mundo, "NAME")#usamos la función para cambiar los nombres
#Unimos el mapa con la tabla de positivos en AMR
mapa_mundo_europa <-left_join(x=mapa_mundo,y=media_region, by = c("NAME" = "RegionCode")) %>%
dplyr::rename(Porcentaje_positivos=mean_value_region) %>%
dplyr::mutate(Porcentaje_positivos = round(Porcentaje_positivos, 2))
#Creamos un gráfico de barras interactivo
graf_barras <- ggplot(mapa_mundo_europa, aes(
y=Porcentaje_positivos,
x = reorder(NAME_LONG,-Porcentaje_positivos), #ordenamos según el porcentaje de positivos
tooltip = paste("País: ", NAME_LONG, "<br>Tasa de Positividad: ", Porcentaje_positivos),#mensaje que sale al pasar el cursor
data_id = NAME_LONG,#el identificador de cada barra
fill = NAME_LONG #colorea según el pais
)) +
geom_col_interactive(data = mapa_mundo_europa) +
coord_flip() + #gira el gráfico
theme_minimal() +
theme(legend.position = "none")+ #elimina la leyenda
labs(x='paises',y='porcentaje de positivos en AMR')
#Creamos el mapa
mapaMundo <- ggplot() +
geom_sf(data = mapa_mundo_europa, fill = "lightgrey", color = "lightgrey") + #dibuja el mapa y asigna color de relleno y borde
geom_sf_interactive(
data = mapa_mundo_europa,
aes(fill = NAME_LONG, tooltip = paste("País: ", NAME_LONG, "<br>Tasa de Positividad: ", Porcentaje_positivos), data_id = NAME_LONG)) +
coord_sf(xlim = c(-30, 50), ylim = c(35, 72), expand = FALSE) + #limita la vista a la región especifica
theme_void() +
theme(
axis.title.x = element_blank(),
axis.title.y = element_blank(),
legend.position = "none"
)
combined_plot <- (graf_barras + mapaMundo) +
plot_layout(widths = c(1, 2)) + #ajustamos el ancho
plot_annotation(
title = 'Porcentaje de positivos en AMR por país',
theme = theme(plot.title = element_text(hjust = 0.5))#centrar titulo
)
#Creamos el mapa interactivo
mapaCombinado <- girafe(ggobj = combined_plot)#convertimos en grafico interactivo
mapaCombinado <- girafe_options(
mapaCombinado,
opts_hover(css = "fill:red;stroke:black;")#cambia el color cuando el cursor pasa sobre el objeto
)
mapaCombinadoCon el objetivo de estudiar la relación entre el nivel económico y el de AMR de la UE, hemos hecho una regresión cuya variable independiente será el PIB y la dependiente, en el eje y, es el porcentaje de población animal y humana resistente a antibióticos representado en un factor dividido entre los dos grupos. La gráfica final es una de dispersión en la cual cada punto se corresponde con un país de la Unión Europea y cada color representa un nivel del factor.
positivos_sinPivotar<-left_join(x = media_region, y = positivos_animales, by = "RegionCode")%>%
dplyr::rename(porcentaje_posit_animales = media)%>%
dplyr::rename(porcentaje_posit_personas = mean_value_region)
positivos_PIB<-full_join(y= pib_2022_desc ,x=positivos_sinPivotar,by=c('RegionCode'='pais')) %>%
dplyr::rename(PIB='2022') %>%
dplyr::rename(Animales=porcentaje_posit_animales, Personas = porcentaje_posit_personas)%>%
group_by(RegionCode) %>%
pivot_longer(.,names_to = "Variable", values_to = "Valores", cols = c(Personas:Animales)) %>%
mutate(Variable = factor(Variable, levels = c("Personas","Animales"))) %>%
filter(Valores!=0.00)
final<-ggplot(positivos_PIB,aes(x=PIB, y=Valores))+
geom_point(aes(color=factor(Variable)))+
geom_smooth(method = 'lm',aes(colour=factor(Variable)))+
labs(title = 'Relación entre PIB y resistencia antimicrobiana',
y='Positivos en AMR',
colour='Poblaciones de positivos')
finalEste gráfico de dispersión muestra la relación entre el PIB y la resistencia antimicrobiana (AMR) para humanos (rojo) y animales (azul) en los países de la UE. También incluye una línea de regresión para cada grupo que representa la tendencia promedio de la relación entre el PIB y la resistencia antimicrobiana. Existe una correlación negativa entre el PIB y la AMR tanto en humanos como en animales. Es decir, los países con mayor PIB tienden a tener menores tasas de resistencia. La pendiente para humanos parece más pronunciada, lo que indica que el PIB tiene un impacto más significativo en la AMR humana que en la animal (lo cual puede deberse las tendencias de importación y exportación alimenticia mencionadas anteriormente). Conclusión Como conclusión, es notable que los países con menores recursos económicos presentan una mayor resistencia y necesitan fortalecer las políticas de salud pública para combatir la AMR.
Relación PIB y Resistencia por cada país de la UE Aqui se muestra la gráfica anterior relacionando el porcentaje de resistencia que hay tanto en ganadería como en personas, por cada uno de los países de la UE
# Gráfico de dispersión interactivo (izquierda)
graf_izq <- ggplot(positivos_PIB, aes(x = PIB, y = Valores)) +
geom_point_interactive(aes(color = Variable, tooltip = RegionCode, data_id = RegionCode), size = 1.5) +
geom_smooth(aes(color = Variable), method = "lm", se = TRUE) +
labs(title = "Relación entre PIB y Resistencia", x = "PIB", y = "Porcentaje de Resistencia") +
theme(legend.position = "none", plot.margin = margin(10, 10, 10, 10))
# Gráfico de barras interactivo (derecha)
graf_drch <- ggplot(positivos_PIB, aes(x = reorder(RegionCode, -Valores), y = Valores, tooltip = paste("País:", RegionCode, "<br>Valor:", Valores), data_id = RegionCode)) +
geom_col_interactive(aes(fill = Variable), position = "dodge") + # Barras interactivas agrupadas por variable
coord_flip() + # Invertir los ejes para barras horizontales
labs(x = "País", y = "Porcentaje de Resistencia") +
#theme_minimal() +
theme(legend.position = "right", # Mostrar la leyenda solo en el gráfico de barras
plot.margin = margin(10, 10, 10, 10)) # Ajuste de márgenes
# Combinar los dos gráficos en una disposición horizontal
graficas_unidas <- girafe(ggobj = graf_izq + graf_drch + plot_layout(ncol = 2))
# Mostrar el gráfico interactivo
graficas_unidasLos países que más porcentaje presentan en cuanto a resistencia en la población son Rumanía, Bulgaria y en cabeza tenemos a Chipre. En resistencia en ganadería encontramos a Letonia y Bulgaria de nuevo con los valors más altos.
El consumo de antibióticos en España varía considerablemente entre comunidades autónomas, destacándose una posible problemática de automedicación en regiones específicas.
La diferenciación entre consumo recetado y no recetado revela un uso inapropiado en ciertas áreas, lo que podría estar fomentando la aparición de bacterias resistentes.
El uso de antibióticos en diferentes sectores (personal, hospitalario y ganadero) tiene un impacto directo en las tasas de resistencia:
En el ámbito hospitalario, un uso excesivo o inapropiado está relacionado con mayores tasas de infecciones resistentes. En la ganadería, la sobremedicación de animales destinados al consumo humano contribuye al desarrollo y diseminación de bacterias multirresistentes a través de la cadena alimentaria y el medio ambiente. El consumo de antibióticos en la ganadería de la UE ha disminuido en los últimos años, lo que refleja el éxito de las políticas de regulación en ciertos países. Sin embargo, esta tendencia no es homogénea.
Existe una correlación negativa significativa entre el Producto Interno Bruto (PIB) de los países de la UE y las tasas de resistencia a los antibióticos, tanto en humanos como en animales.
Los países con mayores niveles de desarrollo económico, como Luxemburgo (LU), Suecia (SE) y Finlandia (FI), presentan tasas de resistencia más bajas, lo que puede atribuirse a mejores sistemas de salud, mayor acceso a la educación sobre el uso adecuado de antibióticos y políticas más estrictas de control.
La incidencia de AMR sigue un patrón geográfico claro:
Los países del norte de Europa (Suecia, Finlandia) muestran menores tasas de resistencia, probablemente debido a un control más estricto y menor uso de antibióticos. Los países del este y sur de Europa (Rumanía, Chipre, Bulgaria) presentan tasas significativamente más altas, lo que podría estar relacionado con factores socioeconómicos, culturales y regulatorios.
@Article{antibiotics9120918, AUTHOR = {Tiseo, Katie and Huber, Laura and Gilbert, Marius and Robinson, Timothy P. and Van Boeckel, Thomas P.}, TITLE = {Global Trends in Antimicrobial Use in Food Animals from 2017 to 2030}, JOURNAL = {Antibiotics}, VOLUME = {9}, YEAR = {2020}, NUMBER = {12}, ARTICLE-NUMBER = {918}, URL = {https://www.mdpi.com/2079-6382/9/12/918}, PubMedID = {33348801}, ISSN = {2079-6382}, ABSTRACT = {Demand for animal protein is rising globally and has been facilitated by the expansion of intensive farming. However, intensive animal production relies on the regular use of antimicrobials to maintain health and productivity on farms. The routine use of antimicrobials fuels the development of antimicrobial resistance, a growing threat for the health of humans and animals. Monitoring global trends in antimicrobial use is essential to track progress associated with antimicrobial stewardship efforts across regions. We collected antimicrobial sales data for chicken, cattle, and pig systems in 41 countries in 2017 and projected global antimicrobial consumption from 2017 to 2030. We used multivariate regression models and estimated global antimicrobial sales in 2017 at 93,309 tonnes (95% CI: 64,443, 149,886). Globally, sales are expected to rise by 11.5% in 2030 to 104,079 tonnes (95% CI: 69,062, 172,711). All continents are expected to increase their antimicrobial use. Our results show lower global antimicrobial sales in 2030 compared to previous estimates, owing to recent reports of decrease in antimicrobial use, in particular in China, the world’s largest consumer. Countries exporting a large proportion of their production are more likely to report their antimicrobial sales data than countries with small export markets.}, DOI = {10.3390/antibiotics9120918} }
@article{Flynn2023, title = {Emerging Antimicrobial Resistance}, author = {Flynn, Cynthia E. and Guarner, Jeannette}, year = {2023}, month = {sep}, doi = {10.1016/j.modpat.2023.100249}, journal = {Modern Pathology}, volume = {36}, number = {9}, pages = {100249}, publisher = {Elsevier}, issn = {0893-3952}, url = {https://doi.org/10.1016/j.modpat.2023.100249} }
@article{10.1371/journal.pgph.0001305, doi = {10.1371/journal.pgph.0001305}, author = {Mulchandani, Ranya AND Wang, Yu AND Gilbert, Marius AND Van Boeckel, Thomas P.}, journal = {PLOS Global Public Health}, publisher = {Public Library of Science}, title = {Global trends in antimicrobial use in food-producing animals: 2020 to 2030}, year = {2023}, month = {02}, volume = {3}, url = {https://doi.org/10.1371/journal.pgph.0001305}, pages = {1-11}, abstract = {Use of antimicrobials in farming has enabled the growth of intensive animal production and helped in meeting the global increase in demand for animal protein. However, the widespread use of veterinary antimicrobials drives antimicrobial resistance, with important consequences for animal health, and potentially human health. Global monitoring of antimicrobial use is essential: first, to track progress in reducing the reliance of farming on antimicrobials. Second, to identify countries where antimicrobial-stewardship efforts should be targeted to curb antimicrobial resistance. Data on usage of antimicrobials in food animals were collected from 42 countries. Multivariate regression models were used in combination with projections of animal counts for cattle, sheep, chicken, and pigs from the Food and Agriculture Organization to estimate global antimicrobial usage of veterinary antimicrobials in 2020 and 2030. Maps of animal densities were used to identify geographic hotspots of antimicrobial use. In each country, estimates of antimicrobial use (tonnes) were calibrated to match continental-level reports of antimicrobial use intensity (milligrams per kilogram of animal) from the World Organization for Animal Health, as well as country-level reports of antimicrobial use from countries that made this information publicly available. Globally, antimicrobial usage was estimated at 99,502 tonnes (95% CI 68,535–198,052) in 2020 and is projected, based on current trends, to increase by 8.0% to 107,472 tonnes (95% CI: 75,927–202,661) by 2030. Hotspots of antimicrobial use were overwhelmingly in Asia (67%), while <1% were in Africa. Findings indicate higher global antimicrobial usage in 2030 compared to prior projections that used data from 2017; this is likely associated with an upward revision of antimicrobial use in Asia/Oceania (~6,000 tonnes) and the Americas (~4,000 tonnes). National-level reporting of antimicrobial use should be encouraged to better evaluate the impact of national policies on antimicrobial use levels.}, number = {2},
}
@article{ARDAKANI2024101060, title = {Global antimicrobial use in livestock farming: an estimate for cattle, chickens, and pigs}, journal = {animal}, volume = {18}, number = {2}, pages = {101060}, year = {2024}, issn = {1751-7311}, doi = {https://doi.org/10.1016/j.animal.2023.101060}, url = {https://www.sciencedirect.com/science/article/pii/S1751731123003774}, author = {Zahra Ardakani and Maurizio Aragrande and Massimo Canali}, keywords = {Animal farming, Antimicrobial resistance, Food animals, Population correction unit, Veterinary antibiotics}, abstract = {Livestock farming substantially contributes to the global economy and food security. However, it poses crucial environmental, animal welfare, and public health challenges. The main objective of this study is to quantify the global antimicrobial use (AMU) in cattle, chicken, and pig farming. This information is important for understanding the potential impact of farm AMU on the emergence and spread of antimicrobial resistance among animals and humans. Using the United States Department of Agriculture Production, Supply, and Distribution and the Food and Agriculture Organization databases, we estimated the total supply of cattle (in heads) and its distribution into four weight categories: calves (26%), cows (41%), heifers (4%), and bulls of more than one year (29%). Similarly, we calculated the total supply of pigs (in heads) and divided it into two weight categories: pigs (96%) and sows (4%). For chickens, we considered one weight category. We attributed to each category a standard weight according to the parameters set by the European Medicines Agency (EMA) to determine the animal biomass at risk of antimicrobial treatment, or population correction unit (PCU). Finally, we estimated the global PCUs and then the global AMU based on the average administered to the three species (in mg of active ingredients per kg PCU). With this method, we estimated a global annual AMU of 76 060 tonnes of antimicrobial active ingredients (2019–2021 average), of which 40 697 tonnes (or 53.5%) for cattle, 4 243 tonnes (or 5.6%) for chickens, and 31 120 tonnes (or 40.9%) for pigs. According to our assessment, global AMU leads to almost 20 000 tonnes less than the previous estimates due to a different evaluation of PCUs. In previous studies, PCUs were calculated on the liveweight at slaughtering of animals, while our method considers the age and sex of animals and their average weight at treatment. Our results are consistent with the World Organization for Animal Health (WOAH) estimate of 76 704 tonnes of veterinary antimicrobials globally consumed in 2018 for the total of food-producing animals (the WOAH estimation is based on sales and import data).} }